# -*- coding:utf-8 -*-
# @FileName : app\extensions.py
# @Time     : 2025/11/28
# @Author   : 天空之城
"""Flask扩展模块

此模块定义和初始化应用使用的所有Flask扩展，如SQLAlchemy、Migrate、JWT、日志等。
"""
import os
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_jwt_extended import JWTManager
from flask_cors import CORS
from app.config import logger

# 初始化SQLAlchemy数据库扩展
db = SQLAlchemy()

# 初始化数据库迁移扩展
migrate = Migrate()

# 初始化JWT认证扩展
jwt = JWTManager()


# 使用从config导入的全局日志实例

def configure_logging(app):
    """配置应用日志
    
    Args:
        app: Flask应用实例
    """
    # 使用从config导入的全局日志实例记录应用启动信息
    logger.info('Flask应用已启动')


def register_extensions(app):
    """注册所有Flask扩展
    
    Args:
        app: Flask应用实例
    """
    # 注册SQLAlchemy
    db.init_app(app)

    # 注册数据库迁移
    migrate.init_app(app, db)

    # 注册JWT
    jwt.init_app(app)

    # 注册CORS
    CORS(app)

    # 配置日志
    configure_logging(app)
